package com.marvels.financial.loan.service;
import java.util.Map;

import org.apache.poi.hssf.usermodel.HSSFWorkbook;

import com.github.pagehelper.Page;
import com.marvels.common.dto.MarvelsResultDTO;
import com.marvels.common.exception.MarvelsBusinessException;
import com.marvels.financial.loan.dto.LendPaymentConditionDTO;
import com.marvels.financial.loan.dto.LendPaymentPlanDTO;
import com.marvels.financial.loan.dto.McfeRepaymentFlowDTO;
import com.marvels.financial.loan.dto.RepaymentFlowListDTO;

/**
 * 放贷还款信息服务
 * @author tangpw
 *
 */
public interface LendPaymentApi {
	
	/**
	 * 还款计划查询
	 * @param conditionDTO
	 * @return
	 */
	public Map<String, Object> paymentPlanList(LendPaymentConditionDTO conditionDTO) throws MarvelsBusinessException;
	
	
	
	
	/**
	 * 下载还款计划
	 * @param conditionDTO
	 * @return
	 */
	public HSSFWorkbook downPaymentPlan(LendPaymentConditionDTO conditionDTO) throws MarvelsBusinessException;
	
	
	
	
	/**
	 * 还款明细查询
	 * @param conditionDTO
	 * @return
	 */
	public MarvelsResultDTO paymentFlowList(LendPaymentConditionDTO conditionDTO) throws MarvelsBusinessException;
	
	/**
	 * 新版还款明细查询
	 * @param conditionDTO
	 * @return
	 */
	public MarvelsResultDTO newPaymentFlowList(LendPaymentConditionDTO conditionDTO) throws MarvelsBusinessException;
	
	/**
	 * 新版还款明细详情
	 * @param conditionDTO
	 * @return
	 */
	public MarvelsResultDTO newPaymentFlowDetail(LendPaymentConditionDTO conditionDTO) throws MarvelsBusinessException;
	
	/**
	 * 下载还款明细
	 * @param conditionDTO
	 */
	public HSSFWorkbook downPaymentFlow(LendPaymentConditionDTO conditionDTO) throws MarvelsBusinessException;
	
	
	/**
	 * 下载还款明细
	 * @param conditionDTO
	 */
	public HSSFWorkbook newDownPaymentFlow(LendPaymentConditionDTO conditionDTO) throws MarvelsBusinessException;
	
	/**
	 * 还款计划查询
	 * @param conditionDTO
	 * @return
	 */
	public Page<McfeRepaymentFlowDTO> withholdDetailList(LendPaymentConditionDTO conditionDTO) throws MarvelsBusinessException;
	
	
	
	/**
	 * 下载代扣明细
	 * @param conditionDTO
	 */
	public HSSFWorkbook downLoadWithholdDetail(LendPaymentConditionDTO conditionDTO) throws MarvelsBusinessException;
	
}
